// This File is part of the "nyaqt" Project
// 
// Copyright  2009 sometmes@gmail.com
// All rights reserved
// 
// This library is free software; you can redistribute it and/or modify
// it under the terms of the GNU Lesser General Public License as published
// by the Free Software Foundation; either version 2.1 of the License, or
// (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
// 
// You should have received a copy of the GNU General Public License
// along with this program.  If not, see <http://www.gnu.org/licenses/>.

using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;

namespace Notify2.Properties
{
    internal partial class Settings
    {
        private static byte[] entropy = new byte[] { 23, 2, 23, 42, 250, 45, 154, 64, 7, 4, 34, 145, 3 };

        public string DecodedPwd
        {
            get
            {
                string pwd = this.Pwd;
                if (pwd != "")
                {
                    byte[] bytesToDec = Convert.FromBase64String(Settings.Default.Pwd);
                    byte[] bytesDec = ProtectedData.Unprotect(bytesToDec, entropy, DataProtectionScope.CurrentUser);
                    return Encoding.UTF8.GetString(bytesDec);
                }
                else
                    return "";
            }

            set
            {
                byte[] bytesToEnc = Encoding.UTF8.GetBytes(value);
                byte[] bytesEnc = ProtectedData.Protect(bytesToEnc, entropy, DataProtectionScope.CurrentUser);
                this.Pwd = Convert.ToBase64String(bytesEnc);
            }
        }
    }
}
